草庐IT

c++ - DrawText VS TextOut Win32

全部标签

c - Erlang:找不到指定的模块

我有一个最低限度的Erlang端口驱动程序:erl_driver_bridge.c->erl_driver_bridge.dll#define__WIN32__#include"erl_driver.h"typedefstruct{ErlDrvPortport;}erl_driver_bridge_data;staticErlDrvDatabridge_start(ErlDrvPortport,char*buff){erl_driver_bridge_data*d=(erl_driver_bridge_data*)driver_alloc(sizeof(erl_driver_bridg

windows - Win32 ShellEx StorageHandler 的任何文档?

我目前正在研究一种新的存档格式,并且有兴趣实现一个shell扩展,例如WindowsXP具有的nativeZip支持。这似乎是通过注册一个实现StorageHandler的shell扩展来完成的。问题是根据MSDN,这个处理程序不存在。我尝试使用谷歌搜索各种资源,但一直找不到任何内容。在任何地方都有任何文档吗,或者这只是Microsoft拒绝与我们其他人分享有趣玩具的又一案例? 最佳答案 您可能会找到thisarticle有帮助。这是一个shortseries. 关于windows-Wi

windows - 如何使用 Win32::API 调用 Win32 DLL void** 参数?

我有一个要从Perl调用的WindowsDLL。导出函数的原型(prototype)是:int__stdcallfunc(constchar*,int,int,int,double,double,void**);最后一个参数返回指向函数中分配的对象的指针。perl代码–my$dll_path="../stage/test_dll.dll";my$dll_func=newWin32::API($dll_path,'func','PIIIDDP','I');my$data="testsomethinghere";my$pResult=0;my$rc=$dll_func->Call($dat

windows - 将 Win32 API WndProc Key 消息从一个窗口传输到另一个窗口

我正在使用C++为WindowsMobile开发,但我遇到了一个问题-我添加了我的窗口类,在其中我使用WndProc实现进行键盘输入。问题是我得到了错误的代码,并且错误地识别了诸如func键之类的键,更糟糕的是,我得到的值(WM_KEYDOWN的wParam>消息)作为我在这里测试的两部手机之间的不同值-谁知道其他手机会发生什么。在玩了很久之后,我发现如果我只从预定义的“EDIT”类,我实际上确实得到了正确的输入(就字母/键而言)。所以问题一定不是出在手机上,而是出在接收消息的方式上(win32有点小白,知识匮乏请见谅)。我尝试使用输入模式,但使用EM_NUMBERS等向我的窗口发送消

windows - 如何判断另一个进程是否有事件的前台窗口? (Win32 API vb.net)

user32.dll提供了从进程可执行名称中获取进程id的函数,我还可以获得用户正在工作的事件窗口或前景窗口。我可以确定目标进程打开了哪些窗口吗?否则,我能否找出打开前台/事件窗口的进程的详细信息?我的代码只需要在另一个特定进程正在运行并且用户正在主动使用该窗口时运行,而该窗口是桌面上的事件窗口、前景窗口和当前焦点窗口。 最佳答案 我想你想使用GetWindowThreadProcessId或者可能EnumThreadWindows 关于windows-如何判断另一个进程是否有事件的前台

c - 如何在 MFC 应用程序中使用 CMenu?

我制作了一个MFC应用程序,现在我想在执行复制操作时关闭窗口的关闭按钮。我用这段代码成功地做到了:BOOLbEnable=FALSE;//TodisableUINTmenuf=bEnable?(MF_BYCOMMAND):(MF_BYCOMMAND|MF_GRAYED|MF_DISABLED);CMenu*pSM=GetSystemMenu(,FALSE);if(pSM){pSM->EnableMenuItem(SC_CLOSE,menuf);}但是现在,在我的线程(UINTCopyThread(LPVOIDpParam))中的程序结束时,我想重新启用它,但我不能。我之前将m_hWnd

c++ - 清空 Win32 弹出式菜单

我正在尝试在我的应用程序中创建一个动态弹出菜单,我使用的生成代码是这样的:HMENUmenu;POINTpt;menu=CreatePopupMenu();SetForegroundWindow(receivingWindow);GetCursorPos(&pt);inti=19;AppendMenu(menu,MF_STRING,i++,_TEXT("mehmeh"));AppendMenu(menu,MF_STRING,i++,_TEXT("testo"));AppendMenu(menu,MF_STRING,i++,_TEXT("foobarfoobar"));TrackPopu

c++ - 为什么我的程序不能显示这个对话框,而另一个程序可以?

我正在尝试为Winamp输入插件编写一个包装器,但遇到了一些障碍。我希望我的包装器能够显示插件的配置对话框,这是(或者应该)通过调用插件的Config(HWNDhwndParent)函数实现的。对于大多数插件,这工作正常,我的程序能够显示插件的配置对话框。然而,64thNote(播放USF文件的插件)给我带来了问题。Winamp可以很好地显示其配置对话框,但每当我尝试从我的包装器中显示它时,该对话框在它显示之前就被销毁了。值得庆幸的是,64thNote是开源的,所以我看了一下它的内部结构,试图了解出了什么问题。我已经删除了不相关的部分,剩下的是:插件中的配置函数(应该显示配置对话框):

c - 在 Windows 上,_fseeki64 不会为大文件正确寻求 SEEK_END

我已将问题简化为以下基本函数,它应该简单地打印文件中的字节数。当我对一个83886080字节(80MB)的文件执行它时,它会打印出正确的数字。但是,对于4815060992字节(4.48GB)的文件,它会打印520093696,这太低了。这似乎与SEEK_END选项有关,因为如果我手动将指针设置为4815060992字节(例如_fseeki64(fp,(__int64)4815060992,SEEK_SET)_ftelli64确实返回了正确的位置。因此,解决方法是在不使用SEEK_END的情况下获取正确的文件大小,这是如何完成的?代码是在32位Windows系统(因此__int64、_

java - 32 位操作系统上的 JVM 堆大小

我正在使用32位win.7和Eclipse。还有4GB内存。我想为我的Java应用程序分配大约3GB的最大堆大小,但我可以通过VM参数-Xmx1056m分配最大1.5GB。我该怎么办?如果我安装64位win.7。然后它可以为我的应用程序分配3GB堆大小吗? 最佳答案 常规的32位Windows进程只能寻址2GB内存,即使您有更多可用内存也是如此。您可以找到不同Windows版本的内存限制here.由于VM需要的内存不仅仅是堆,所以最大堆大小将略小于进程可用的最大内存。通常,对于32位WindowsVM,您可以将堆调整到大约1.6GB